2186
5587
언 피클 링 후 예측을로드하려고하는데이 오류가 발생합니다.
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/weight_boosting.py:29 :
DeprecationWarning : numpy.core.umath_tests는 내부 NumPy 모듈입니다.
가져올 수 없습니다. 향후 NumPy에서 제거됩니다.
해제. numpy.core.umath_tests에서 inner1d 가져 오기
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/base.py:311 :
UserWarning : 추정기 DecisionTreeClassifier를
버전 0.19.2를 사용하는 경우 버전 0.20.2. 이것은 깨질 수 있습니다
코드 또는 잘못된 결과. 자신의 책임하에 사용하십시오. UserWarning)
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/base.py:311 :
UserWarning : 추정기 RandomForestClassifier를
버전 0.19.2를 사용하는 경우 버전 0.20.2. 이것은 깨질 수 있습니다
코드 또는 잘못된 결과. 자신의 책임하에 사용하십시오. UserWarning)
역 추적 (최근 호출 마지막) : 파일 "rf_pred_model_tester.py",
7 행
print ( 'Class :', int (rf.predict (xx))) 파일 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/forest.py" ,
줄 538, 예측
proba = self.predict_proba (X) 파일 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/forest.py",
581 행, predict_proba
n_jobs, _, _ = _partition_estimators (self.n_estimators, self.n_jobs) 파일
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/base.py",
_partition_estimators의 153 행
n_jobs = min (_get_n_jobs (n_jobs), n_estimators) 파일 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/init.py",
라인 464, _get_n_jobs
n_jobs <0 인 경우 : TypeError : 'NoneType'및 'int'인스턴스간에 '<'가 지원되지 않음
여기 내가 실행하려는 코드가 있습니다.
수입 피클
numpy를 np로 가져 오기
open ( 'rf_model_1', 'rb')를 f로 사용 :
rf = pickle.load (f)
xx = np.array ([67, 17832, 1, 1, 0, 33, 1941902452, 36, 33011.0, 19, 18, 0, 2, 1]). reshape (1, -1)
print ( '클래스 :', int (rf.predict (xx)))
다음과 같은 결과를 기대하고 있습니다.
클래스 : [0]
jupyter에서 코드를 실행하면 정상적으로 작동하지만 터미널에서 실행하려고 할 때 오류가 발생합니다. 
귀하의 오류는 직설적으로 설명합니다.
UserWarning : 버전 0.19.2를 사용할 때 0.20.2 버전에서 추정기 RandomForestClassifier를 제거하려고합니다. 이로 인해 코드가 깨지거나 잘못된 결과가 발생할 수 있습니다. 자신의 책임하에 사용하십시오.
그리고 실제로 그것은 일어난 일입니다. 피클 링 할 때 RandomForestClassifier의 n_jobs 속성이 None으로 유지되었습니다. 이것은 초기화를위한 기본값이지만 배후에서는 일반적으로 1로 설정됩니다. n_jobs에 대한 자세한 내용은 https://scikit-learn.org/stable/glossary.html#term-n-jobs에서 찾을 수 있습니다.
당신을 위해 rf의 n_jobs를 1로 설정하면 트릭을 수행합니다.
수입 피클
numpy를 np로 가져 오기
open ( 'rf_model_1', 'rb')를 f로 사용 :
rf = pickle.load (f)
rf.n_jobs = 1
xx = np.array ([67, 17832, 1, 1, 0, 33, 1941902452, 36, 33011.0, 19, 18, 0, 2, 1]). reshape (1, -1)
print ( '클래스 :', int (rf.predict (xx)))
|
매우 적극적인 질문입니다. 이 질문에 답하기 위해 평판 10을 획득하십시오. 평판 요구 사항은 스팸 및 비 응답 활동으로부터이 질문을 보호하는 데 도움이됩니다.
찾고있는 답변이 아닙니까? python-3.x 태그가 지정된 다른 질문을 찾아 보거나 직접 질문하십시오.